import pygame

class Paddle:
    def __init__(self, game):
        """
        初始化挡板对象。
        :param game: 主游戏类的实例，用于获取配置信息。
        """
        self.config = game.config
        self.screen_width = game.config.screen_width
        self.screen_height = game.config.screen_height

        # 从配置中获取挡板属性
        self.width = game.config.paddle_width
        self.height = game.config.paddle_height
        self.speed = game.config.paddle_speed  # 从配置中读取初始速度

        # 初始化挡板位置（屏幕底部中央，距底部20像素）
        self.rect = pygame.Rect(
            (self.screen_width - self.width) // 2,  # x坐标居中
            self.screen_height - self.height - 20,  # y坐标距底部20像素
            self.width,
            self.height
        )

    def update(self, keys):
        """
        根据键盘输入更新挡板位置。
        :param keys: 当前按下的键盘按键状态。
        """
        # 向左移动（检查左边界）
        if keys[pygame.K_LEFT] and self.rect.left > 0:
            self.rect.x -= self.speed
        # 向右移动（检查右边界）
        if keys[pygame.K_RIGHT] and self.rect.right < self.screen_width:
            self.rect.x += self.speed

    def draw(self, screen):
        """
        在屏幕上绘制挡板。
        :param screen: Pygame 的屏幕对象。
        """
        pygame.draw.rect(screen, self.config.colors['blue'], self.rect)